package 算法.图.无向图;

import com.sun.org.apache.xml.internal.security.Init;

import 算法.图.util.Edge;
import 算法.背包.Bag;


/**
 * 【无向图：带权】
 * 	
 * @Date   2017-09-03 14:31
 * @author Administrator
 * @version TODO:>>>>>>>尚未测试
 */
public class EdgeWeightedGraph {
	public final int V;			//顶点数
	public int E;			    //边数
	public Bag<Edge>[] adj;		//邻接表
	public EdgeWeightedGraph(int V, int E) {
		this.V = V;
		this.E = E;
		this.adj = new Bag[V];
		//init
		for(int i = 0; i < adj.length; i ++)	adj[i] = new Bag<Edge>();
	}
	/**
	 * add()：为无向图加边
	 * @param edge
	 */
	public void add(Edge edge) {
		int v = edge.either(), w = edge.other(v);
		adj[v].add(edge);
		adj[w].add(edge);
		E++;
	}
	/**
	 * adj()：得到所有与v节点相邻的边
	 * @param v：需要查找边的某节点
	 * @return
	 */
	public Iterable<Edge> adj(int v) {
		return adj[v];
	}
}
